#ifndef ALGO_MAP_H
#define ALGO_MAP_H

#include "Pair.h"

namespace algo {
  template<typename K, typename V>
  class Map {
  public:
    virtual void insert(K key, V value) = 0;
    virtual V deleteKey(K key) = 0;
    virtual V deleteMinimum() = 0;
    virtual V lookup(K key) const = 0;
    virtual Pair<K, V> findNext(K key) const = 0;
    virtual Pair<K, V> findMin() const = 0;
  };
}

#endif //ALGO_MAP_H
